This invention relates generally to video graphic circuitry and more particularly to video graphic circuitry that includes texture mapping.
Computer systems are known to include a central processing unit, system memory, video graphics processing circuitry, audio processing circuitry, and peripheral ports. The peripheral ports allow the central processing unit to access peripheral devices such as monitors, printers, external tape drives, video sources, etc., which facilitate in the execution of computer applications. Such computer applications include word processing applications, drawing applications, painting applications, spreadsheet applications, video games, broadcast television signals, cable television signals, etc. For example, as a central processing unit processes an application, it provides image data to the video graphics circuitry, which, in turn, processes the image data and provides the processed image data to a monitor.
At a minimum, the image date provided by the central processing unit includes physical coordinates of an object with respect to the display coordinates and color information. Such basic image data is typical for two-dimensional images of word processing applications, drawing applications, presentation applications, etc. For more complex display options, such as three-dimensional imagery, the image data, i.e., object parameters, may further include texture coordinates, alpha-blending parameters, and/or bump map coordinates. The texture coordinates correlate the object to a particular texture map such that the object""s surface has a pattern of the texture map. The alpha-blending parameters indicate the translucency of the object. If the object is solid (i.e., not translucent), the alpha-blending value will be a one. If the object is translucent, the alpha-blending value will indicate the level of translucency in the range of 0 (e.g., transparent) to one (e.g., solid).
The bump map coordinates relate the object to a bump map, which includes a topological representation of roughness that may be imposed upon the surface of the object. In general, providing a xe2x80x9cbumpedxe2x80x9d surface, which may be referred to as applying a shading function, on an object is done on a pixel by pixel basis. The bumping process (i.e., providing an appearance of roughness to a surface) begins by determining a normal vector (N) of the object, where the normal vector is perpendicular to the planer surface of the object. Next, a bump vector (xcex94N) is determined by using the partial derivatives at a point O (the mapping coordinates) on the surface along the u and v directions (u and v are the axes of the bump surface), the partial derivatives obtain the normal vector N as N=Ouxc3x97Ov and defined two additional vectors xcex6=Nxc3x97Ov xcfx84=Nxc3x97Ou to form a local coordinate system. Then perturbation xcex94N is defined as xcex94N=Buxcex6xe2x88x92Bvxcfx84 where Bu and Bv are the partial derivatives of the bump map B (u, v). Note that xcex94N is a vector in the plane of xcex6 and xcfx84, which implies it is also on the surface. The shading results from the Lambertian shading formula:                     (                  N          +                      Δ            ⁢                          xe2x80x83                        ⁢            N                          )            ·      L              |              N        +                  Δ          ⁢                      xe2x80x83                    ⁢          N                    |              xc3x97                  |          L          |                      =                    N        ·        L                    |                  N          +                      Δ            ⁢                          xe2x80x83                        ⁢            N                          |                  xc3x97                      |            L            |                                +                  Δ        ⁢                  xe2x80x83                ⁢                  N          ·          L                            |                  N          +                      Δ            ⁢                          xe2x80x83                        ⁢            N                          |                  xc3x97                      |            L            |                              
These mathematical steps must be taken for each pixel of the object to apply the shading function to the object. Due the complex nature of the equations and the processing power required to execute them, bump mapping is cost prohibitive for all but the very high-end computer products that have significant memory and processing resources.
Therefore, a need exists for a method and apparatus that provides texture mapping, which includes bump mapping, without the computational overhead of existing texture and/or bump mapping techniques.